﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using MaquinaJMG.GUI.Contrato;
using Datos.Entidades;
using MaquinaJMG.GUI.Contrato;
using Logica.Comandos.AdministracionUsuarios;
using Datos.Entidades.FabricaEntidades;
using Logica.Comandos;
using Logica.FabricaLogica;
using System.Windows.Forms;
using Logica.Comandos.ComandosAdministracionEvento;
using Logica.Comandos.ComandoXML;
using System.Xml;
namespace ApuestasJMG.GUI.Presentador
{

    public class PresentadorConsultarEvento2
    {

        private IContratoConsultarEvento2 _evento;
        List<Entidad> listaUsuarios = new List<Entidad>();

        // <summary>
        /// presentador para hacer llamada a las interfaces de ConsultarEvento
        /// </summary>

        public PresentadorConsultarEvento2(IContratoConsultarEvento2 evento)
        {
            _evento = evento;
        }

        // <summary>
        /// procedimiento que consulta eventos
        /// </summary>
        /// <param name="usuario">Evento a seleccionar</param>


        public void ConsultarEventos()
        {
            Comando comando = FabricaComandoEvento.ObtenerComandoBuscarEventoFechaInicioMayor();
            //comando.Tipo = fi;
            // comando.Cadena = ff;
            (comando as ComandoBuscarEventoFechaInicioMayor).Ejecutar();
            //comando.Ejecutar();
            listaUsuarios = comando.ListaEntidad;
            //_evento.GridViewConsultarUsuario.DataSource = listaUsuarios;
            //_evento.GridViewConsultarUsuario.DataBind();
        }

        public void obtenerDatos(string usuario)
        {
            Comando comando = FabricaComandoXML.CrearComandoBuscarXML();

            comando.Ejecutar();
            listaUsuarios = comando.ListaEntidad;

            XmlTextWriter myXmlTextWriter = new XmlTextWriter("C:/Repositorio/apuestas.xml", System.Text.Encoding.UTF8);
            myXmlTextWriter.Formatting = Formatting.Indented;
            myXmlTextWriter.WriteStartDocument(false);
            myXmlTextWriter.WriteStartElement("registroApuestas", null);
            

            for (int i = 0; i < listaUsuarios.Count; i++)
            {

                myXmlTextWriter.WriteStartElement("Apuesta"); 
                myXmlTextWriter.WriteElementString("idAcceso", null, (listaUsuarios.ElementAt(i) as Acceso).IdAcceso.ToString());
                myXmlTextWriter.WriteElementString("fecha", null, (listaUsuarios.ElementAt(i) as Acceso).Fecha.ToString());
                myXmlTextWriter.WriteElementString("hora", null, (listaUsuarios.ElementAt(i) as Acceso).Hora.ToString());
                myXmlTextWriter.WriteElementString("minuto", (listaUsuarios.ElementAt(i) as Acceso).Min.ToString());
                myXmlTextWriter.WriteElementString("montoApostado", null, (listaUsuarios.ElementAt(i) as Acceso).MontoApostado.ToString());
                myXmlTextWriter.WriteElementString("idEvento", null, (listaUsuarios.ElementAt(i) as Acceso).FkIdEvento.ToString());
                myXmlTextWriter.WriteElementString("idHistorialParticipante", null, (listaUsuarios.ElementAt(i) as Acceso).FkIdHistorialParticipante.ToString());
                myXmlTextWriter.WriteElementString("idMaquina", null, (listaUsuarios.ElementAt(i) as Acceso).FkIdHistorialParticipante.ToString());
                myXmlTextWriter.WriteEndElement();

            }

            myXmlTextWriter.WriteEndElement();
            myXmlTextWriter.Flush();
            myXmlTextWriter.Close();
            Console.ReadLine();
        }


    }

}